package org.tools.json;

import java.util.Date;

import org.tools.constants.StringPool;
import org.tools.time.DateFormatUtil;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

/** 
 * json日期值处理器
 *
 * <pre> 
 * 构建组：e-tools
 * 作者：eddy
 * 邮箱：1546077710@qq.com
 * 日期：2017年4月23日-下午5:49:12
 * 版权：E源时代
 * </pre>
 */
public class JsonDateValueProcessor implements JsonValueProcessor {

	/**
	 * format = "yyyy-MM-dd HH:mm:ss"
	 */
	private String format = StringPool.DATE_FORMAT_DATETIME;

	public JsonDateValueProcessor() {}

	public JsonDateValueProcessor(String format) {
		this.format = format;
	}

	public Object processArrayValue(Object value, JsonConfig jsonConfig) {
		return process(value, jsonConfig);
	}

	public Object processObjectValue(String key, Object value,
			JsonConfig jsonConfig) {
		return process(value, jsonConfig);
	}

	private Object process(Object value, JsonConfig jsonConfig) {
		if (value instanceof Date)
			return DateFormatUtil.format((Date) value, format);
		return value == null ? null : value.toString();
	}

	public String getFormat() {
		return format;
	}

	public void setFormat(String format) {
		this.format = format;
	}
}
